/**
 * @file    jm_drv_master.h
 * @brief   关节电机服务
 * @details This is the detail description.
 * @author  wang-haoyu
 * @date    2025年7月10日 (created)
 * @version 0.0.1
 * @par Copyright (C):
 *          All Rights Reserved.
 * @par Encoding:
 *          UTF-8
 * @par Description        :
 * 1. Hardware Descriptions:
 *      None.
 * 2. Program Architecture:
 *      None.
 * 3. File Usage:
 *      None.
 * 4. Limitations:
 *      None.
 * 5. Else:
 *      None.
 * @par Modification:
 * -# Date          : 2025年7月10日;
 * Revision         : 0.0.1;
 * Author           : wang-haoyu;
 * Contents         :
 */
 
/* =============================================================================
 *                                header files
 * ========================================================================== */
#ifndef __JM_DRV_MASTER_H
#define __JM_DRV_MASTER_H
#include "data.h"
#include "jm_frame_port.h"
#include "jm_config.h"
#include "jm_drv_cfg.h"
#include "jm_fifo_port.h"
#include "damiao_drv.h"
/* =============================================================================
 *                              macros & constants
 * ========================================================================== */
extern struct rt_messagequeue jm_send_mq;
/* =============================================================================
 *                          data structure definitions
 * ========================================================================== */

/* =============================================================================
 *                         static variable definitions
 * ========================================================================== */

/* =============================================================================
 *                         static function definitions
 * ========================================================================== */

/* =============================================================================
 *                         global function definitions
 * ========================================================================== */
/*
 * 关节电机初始化函数
 *
 * Parameter:
 *   Input:
 *   Output:
 * Returns:
 */
void jm_drv_init(void);

/*
 * 关节电机数据发送回调函数（对外）
 *
 * Parameter:
 *   Input:
 *   Output:
 * Returns:
 */
void jm_drv_tx_callback(const void *buffer, rt_size_t size);

/*
 * 关节电机数据紧急发送回调函数（对外）
 *
 * Parameter:
 *   Input:
 *      -*buffer：数据输入缓冲区
 *      -size:输入数据长度
 *   Output:
 * Returns:
 */
void jm_drv_tx_urgent_callback(const void *buffer, rt_size_t size);
/*
 * 关节电机注册函数
 *
 * Parameter:
 *   Input:
 *		-node_type：关节电机类型
 *      -node_id：关节电机ID
 *   Output:
 * Returns:
 *		-返回状态
 */
int joint_motor_drv_register(joint_motor_drv_model_t node_type,rt_uint8_t node_id);

/*
 * 关节电机数据获取回调函数（对外）
 *
 * Parameter:
 *   Input:
 *   Output:
 * Returns:
 */
void jm_drv_info_get_callback(rt_uint8_t node_id,jm_drv_info_get_t *obj);

/*
 * 关节电机基础控制参数获取回调函数（对外）
 *
 * Parameter:
 *   Input:
 *   Output:
 * Returns:
 */
void jm_drv_base_param_get_callback(rt_uint8_t node_id,jm_base_ctrl_param_t *obj);

#endif

/*******************************************************************************
 *                                  EOF
 ******************************************************************************/